home *** CD-ROM | disk | FTP | other *** search
/ Mac Power 1997 December / MACPOWER-1997-12.ISO.7z / MACPOWER-1997-12.ISO / AMUG / PROGRAMMING / Raven 1.2.sit / Raven 1.2 / • Extras • / Display Manager / INTO Universal Headers / Displays.h next >
Text File  |  1995-06-14  |  24KB  |  519 lines

  1. /*
  2.      File:        Displays.h
  3.  
  4.      Contains:    Display Manager Interfaces.
  5.  
  6.      Version:    Technology:    
  7.                  Package:    Universal Interfaces.  5/18/95.
  8.                 Revision:    26.
  9.  
  10.      Copyright:    ゥ 1984-1995 by Apple Computer, Inc.
  11.                  All rights reserved.
  12.  
  13.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  14.                  stack.  Include the file and version information (from above)
  15.                  in the problem description and send to:
  16.                      Internet:    apple.bugs@applelink.apple.com
  17.                      AppleLink:    APPLE.BUGS
  18.  
  19. */
  20.  
  21. #ifndef __DISPLAYS__
  22. #define __DISPLAYS__
  23.  
  24.  
  25. #ifndef __CONDITIONALMACROS__
  26. #include <ConditionalMacros.h>
  27. #endif
  28.  
  29. #ifndef __COMPONENTS__
  30. #include <Components.h>
  31. #endif
  32. /*    #include <Types.h>                                            */
  33. /*    #include <MixedMode.h>                                        */
  34.  
  35. #ifndef __VIDEO__
  36. #include <Video.h>
  37. #endif
  38. /*    #include <Quickdraw.h>                                        */
  39. /*        #include <QuickdrawText.h>                                */
  40.  
  41. #ifndef __APPLEEVENTS__
  42. #include <AppleEvents.h>
  43. #endif
  44. /*    #include <Errors.h>                                            */
  45. /*    #include <Memory.h>                                            */
  46. /*    #include <OSUtils.h>                                        */
  47. /*    #include <Events.h>                                            */
  48. /*    #include <EPPC.h>                                            */
  49. /*        #include <AppleTalk.h>                                    */
  50. /*        #include <Files.h>                                        */
  51. /*            #include <Finder.h>                                    */
  52. /*        #include <PPCToolbox.h>                                    */
  53. /*        #include <Processes.h>                                    */
  54. /*    #include <Notification.h>                                    */
  55.  
  56. #ifndef __WINDOWS__
  57. #include <Windows.h>
  58. #endif
  59. /*    #include <Controls.h>                                        */
  60. /*        #include <Menus.h>                                        */
  61.  
  62. #ifndef __EVENTS__
  63. #include <Events.h>
  64. #endif
  65.  
  66. #ifndef __PROCESSES__
  67. #include <Processes.h>
  68. #endif
  69.  
  70. #ifndef __DIALOGS__
  71. #include <Dialogs.h>
  72. #endif
  73. /*    #include <TextEdit.h>                                        */
  74.  
  75. #ifdef __cplusplus
  76. extern "C" {
  77. #endif
  78.  
  79. #if PRAGMA_ALIGN_SUPPORTED
  80. #pragma options align=mac68k
  81. #endif
  82.  
  83. #if PRAGMA_IMPORT_SUPPORTED
  84. #pragma import on
  85. #endif
  86.  
  87.  
  88. enum {
  89. /* AppleEvents Core Suite */
  90.     kAESystemConfigNotice        = 'cnfg',
  91. /* Core Suite types */
  92.     kAEDisplayNotice            = 'dspl',
  93.     kAEDisplaySummary            = 'dsum',
  94.     keyDMConfigVersion            = 'dmcv',
  95.     keyDMConfigFlags            = 'dmcf',
  96.     keyDMConfigReserved            = 'dmcr',
  97.     keyDisplayID                = 'dmid',
  98.     keyDisplayComponent            = 'dmdc',
  99.     keyDisplayDevice            = 'dmdd',
  100.     keyDisplayFlags                = 'dmdf',
  101.     keyDisplayMode                = 'dmdm',
  102.     keyDisplayModeReserved        = 'dmmr',
  103.     keyDisplayReserved            = 'dmdr',
  104.     keyDisplayMirroredId        = 'dmmi',
  105.     keyDeviceFlags                = 'dddf',
  106.     keyDeviceDepthMode            = 'dddm',
  107.     keyDeviceRect                = 'dddr',
  108.     keyPixMapRect                = 'dpdr',
  109.     keyPixMapHResolution        = 'dphr',
  110.     keyPixMapVResolution        = 'dpvr',
  111.     keyPixMapPixelType            = 'dppt',
  112.     keyPixMapPixelSize            = 'dpps',
  113.     keyPixMapCmpCount            = 'dpcc',
  114.     keyPixMapCmpSize            = 'dpcs',
  115.     keyPixMapAlignment            = 'dppa',
  116.     keyPixMapResReserved        = 'dprr',
  117.     keyPixMapReserved            = 'dppr',
  118.     keyPixMapColorTableSeed        = 'dpct',
  119.     keySummaryMenubar            = 'dsmb',
  120.     keySummaryChanges            = 'dsch',
  121.     keyDisplayOldConfig            = 'dold',
  122.     keyDisplayNewConfig            = 'dnew'
  123. };
  124.  
  125. enum {
  126.     dmOnlyActiveDisplays        = true,
  127.     dmAllDisplays                = false
  128. };
  129.  
  130. enum {
  131. /* Switch Flags */
  132.     kNoSwitchConfirmBit            = 0,                            /* Flag indicating that there is no need to confirm a switch to this mode */
  133.     kDepthNotAvailableBit,                                        /* Current depth not available in new mode */
  134.     kShowModeBit                = 3,                            /* Show this mode even though it requires a confirm. */
  135.     kModeNotResizeBit            = 4                                /* Do not use this mode to resize display (for cards that mode drives a different connector). */
  136. };
  137.  
  138. enum {
  139. /*    Summary Change Flags (sticky bits indicating an operation was performed)
  140.     For example, moving a display then moving it back will still set the kMovedDisplayBit.
  141. */
  142.     kBeginEndConfigureBit        = 0,
  143.     kMovedDisplayBit,
  144.     kSetMainDisplayBit,
  145.     kSetDisplayModeBit,
  146.     kAddDisplayBit,
  147.     kRemoveDisplayBit,
  148.     kNewDisplayBit,
  149.     kDisposeDisplayBit,
  150.     kEnabledDisplayBit,
  151.     kDisabledDisplayBit,
  152.     kMirrorDisplayBit,
  153.     kUnMirrorDisplayBit
  154. };
  155.  
  156. enum {
  157. /* Notification Messages for extended call back routines */
  158.     kDMNotifyInstalled            = 1,                            /* At install time */
  159.     kDMNotifyEvent                = 2,                            /* Post change time */
  160.     kDMNotifyRemoved            = 3,                            /* At remove time */
  161.     kDMNotifyPrep                = 4,                            /* Pre change time */
  162.     kDMNotifyExtendEvent        = 5,                            /* Allow registrees to extend apple event before it is sent */
  163.     kDMNotifyDependents            = 6,                            /* Minor notification check without full update */
  164.     kDMNotifySuspendConfigure    = 7,                            /* Temporary end of configuration */
  165.     kDMNotifyResumeConfigure    = 8,                            /* Resume configuration */
  166. /* Notification Flags */
  167.     kExtendedNotificationProc    = (1L << 16)
  168. };
  169.  
  170. /* types for notifyType */
  171. enum {
  172.     kFullNotify,                                                /* This is the appleevent whole nine yards notify */
  173.     kFullDependencyNotify                                        /* Only sends to those who want to know about interrelated functionality (used for updating UI) */
  174. };
  175.  
  176. /* DisplayID/DeviceID constants */
  177. enum {
  178.     kDummyDeviceID                = 0x0FF,                        /* This is the ID of the dummy display, used when the last メrealモ display is disabled.*/
  179.     kInvalidDisplayID            = 0x000,                        /* This is the invalid ID*/
  180.     kFirstDisplayID                = 0x100
  181. };
  182.  
  183. enum {
  184. /* bits for panelListFlags */
  185.     kAllowDuplicatesBit            = 0
  186. };
  187.  
  188. enum {
  189. /* bits for nameFlags */
  190.     kSuppressNumberBit            = 0,
  191.     kSuppressNumberMask            = 1,
  192.     kForceNumberBit                = 1,
  193.     kForceNumberMask            = 2,
  194.     kSuppressNameBit            = 2,
  195.     kSuppressNameMask            = 4
  196. };
  197.  
  198. /* Constants for fidelity checks */
  199. enum {
  200.     kNoFidelity                    = 0,
  201.     kMinimumFidelity            = 1,
  202.     kDefaultFidelity            = 500,                            /* I'm just picking a number for Apple default panels and engines*/
  203.     kDefaultManufacturerFidelity = 1000                            /* I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)*/
  204. };
  205.  
  206. enum {
  207.     kAnyPanelType                = 0,                            /* Pass to DMNewEngineList for list of all panels (as opposed to specific types)*/
  208.     kAnyEngineType                = 0,                            /* Pass to DMNewEngineList for list of all engines*/
  209.     kAnyDeviceType                = 0,                            /* Pass to DMNewDeviceList for list of all devices*/
  210.     kAnyPortType                = 0                                /* Pass to DMNewDevicePortList for list of all devices*/
  211. };
  212.  
  213. /* portListFlags for DM_NewDevicePortList */
  214. enum {
  215. /* Should offline devices be put into the port list (such as dummy display) */
  216.     kPLIncludeOfflineDevicesBit    = 0
  217. };
  218.  
  219. typedef unsigned long DMFidelityType;
  220.  
  221. /* AVID is an ID for ports and devices the old DisplayID type
  222.     is carried on for compatibility
  223. */
  224. typedef unsigned long AVIDType;
  225.  
  226. typedef AVIDType DisplayIDType;
  227.  
  228. typedef void *DMListType;
  229.  
  230. typedef unsigned long DMListIndexType;
  231.  
  232. typedef VDPowerStateRec AVPowerStateRec;
  233.  
  234. typedef VDPowerStateRec *AVPowerStatePtr;
  235.  
  236. struct DMComponentListEntryRec {
  237.     DisplayIDType                    itemID;                        /* DisplayID Manager*/
  238.     Component                        itemComponent;                /* Component Manager*/
  239.     ComponentDescription            itemDescription;            /* We can always construct this if we use something beyond the compontent mgr.*/
  240.     ResType                            itemClass;                    /* Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)*/
  241.     DMFidelityType                    itemFidelity;                /* How good is this item for the specified search?*/
  242.     ResType                            itemSubClass;                /* Subclass of group to put this panel.  Can use to do sub-grouping (eg volume for volume panel and mute panel)*/
  243.     Point                            itemSort;                    /* Set to 0 - future to sort the items in a sub group.*/
  244.     unsigned long                    itemFlags;                    /* Set to 0 (future expansion)*/
  245.     ResType                            itemReserved;                /* What kind of code does the itemReference point to  (right now - kPanelEntryTypeComponentMgr only)*/
  246.     unsigned long                    itemFuture1;                /* Set to 0 (future expansion - probably an alternate code style)*/
  247.     unsigned long                    itemFuture2;                /* Set to 0 (future expansion - probably an alternate code style)*/
  248.     unsigned long                    itemFuture3;                /* Set to 0 (future expansion - probably an alternate code style)*/
  249.     unsigned long                    itemFuture4;                /* Set to 0 (future expansion - probably an alternate code style)*/
  250. };
  251. typedef struct DMComponentListEntryRec DMComponentListEntryRec;
  252.  
  253. typedef DMComponentListEntryRec *DMComponentListEntryPtr;
  254.  
  255. /* ・・・ Move AVLocationRec to AVComponents.i AFTER AVComponents.i is created*/
  256. struct AVLocationRec {
  257.     unsigned long                    locationConstant;            /* Set to 0 (future expansion - probably an alternate code style)*/
  258. };
  259. typedef struct AVLocationRec AVLocationRec;
  260.  
  261. typedef AVLocationRec *AVLocationPtr;
  262.  
  263. struct DMDepthInfoRec {
  264.     VDSwitchInfoPtr                    depthSwitchInfo;            /* This is the switch mode to choose this timing/depth */
  265.     VPBlockPtr                        depthVPBlock;                /* VPBlock (including size, depth and format) */
  266.     unsigned long                    depthFlags;                    /* Reserved */
  267.     unsigned long                    depthReserved1;                /* Reserved */
  268.     unsigned long                    depthReserved2;                /* Reserved */
  269. };
  270. typedef struct DMDepthInfoRec DMDepthInfoRec;
  271.  
  272. typedef DMDepthInfoRec *DMDepthInfoPtr;
  273.  
  274. struct DMDepthInfoBlockRec {
  275.     unsigned long                    depthBlockCount;            /* How many depths are there? */
  276.     DMDepthInfoPtr                    depthVPBlock;                /* Array of DMDepthInfoRec */
  277.     unsigned long                    depthBlockFlags;            /* Reserved */
  278.     unsigned long                    depthBlockReserved1;        /* Reserved */
  279.     unsigned long                    depthBlockReserved2;        /* Reserved */
  280. };
  281. typedef struct DMDepthInfoBlockRec DMDepthInfoBlockRec;
  282.  
  283. typedef DMDepthInfoBlockRec *DMDepthInfoBlockPtr;
  284.  
  285. struct DMDisplayModeListEntryRec {
  286.     unsigned long                    displayModeFlags;
  287.     VDSwitchInfoPtr                    displayModeSwitchInfo;
  288.     VDResolutionInfoPtr                displayModeResolutionInfo;
  289.     VDTimingInfoPtr                    displayModeTimingInfo;
  290.     DMDepthInfoBlockPtr                displayModeDepthBlockInfo;    /* Information about all the depths*/
  291.     Ptr                                displayModeReserved1;        /* Reserved*/
  292.     Str255                            *displayModeName;            /* Name of the timing mode*/
  293. };
  294. typedef struct DMDisplayModeListEntryRec DMDisplayModeListEntryRec;
  295.  
  296. typedef DMDisplayModeListEntryRec *DMDisplayModeListEntryPtr;
  297.  
  298. struct DependentNotifyRec {
  299.     ResType                            notifyType;                    /* What type was the engine that made the change (may be zero)*/
  300.     ResType                            notifyClass;                /* What class was the change (eg geometry, color etc)*/
  301.     DisplayIDType                    notifyPortID;                /* Which device was touched (kInvalidDisplayID -> all or none)*/
  302.     ComponentInstance                notifyComponent;            /* What engine did it (may be 0)?*/
  303.     unsigned long                    notifyVersion;                /* Set to 0 (future expansion)*/
  304.     unsigned long                    notifyFlags;                /* Set to 0 (future expansion)*/
  305.     unsigned long                    notifyReserved;                /* Set to 0 (future expansion)*/
  306.     unsigned long                    notifyFuture;                /* Set to 0 (future expansion)*/
  307. };
  308. typedef struct DependentNotifyRec DependentNotifyRec;
  309.  
  310. typedef DependentNotifyRec *DependentNotifyPtr;
  311.  
  312. /* Exports to support Interfaces library containing unused calls */
  313. typedef pascal void (*DMNotificationProcPtr)(AppleEvent *theEvent);
  314. typedef pascal void (*DMExtendedNotificationProcPtr)(void *userData, short theMessage, void *notifyData);
  315. typedef pascal void (*DMComponentListIteratorProcPtr)(void *userData, DMListIndexType itemIndex, DMComponentListEntryPtr componentInfo);
  316. typedef pascal void (*DMDisplayModeListIteratorProcPtr)(void *userData, DMListIndexType itemIndex, DMDisplayModeListEntryPtr displaymodeInfo);
  317.  
  318. #if GENERATINGCFM
  319. typedef UniversalProcPtr DMNotificationUPP;
  320. typedef UniversalProcPtr DMExtendedNotificationUPP;
  321. typedef UniversalProcPtr DMComponentListIteratorUPP;
  322. typedef UniversalProcPtr DMDisplayModeListIteratorUPP;
  323. #else
  324. typedef DMNotificationProcPtr DMNotificationUPP;
  325. typedef DMExtendedNotificationProcPtr DMExtendedNotificationUPP;
  326. typedef DMComponentListIteratorProcPtr DMComponentListIteratorUPP;
  327. typedef DMDisplayModeListIteratorProcPtr DMDisplayModeListIteratorUPP;
  328. #endif
  329.  
  330. enum {
  331.     uppDMNotificationProcInfo = kPascalStackBased
  332.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(AppleEvent*))),
  333.     uppDMExtendedNotificationProcInfo = kPascalStackBased
  334.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  335.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  336.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*))),
  337.     uppDMComponentListIteratorProcInfo = kPascalStackBased
  338.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  339.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(DMListIndexType)))
  340.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(DMComponentListEntryPtr))),
  341.     uppDMDisplayModeListIteratorProcInfo = kPascalStackBased
  342.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  343.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(DMListIndexType)))
  344.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(DMDisplayModeListEntryPtr)))
  345. };
  346.  
  347. #if GENERATINGCFM
  348. #define NewDMNotificationProc(userRoutine)        ¥
  349.         (DMNotificationUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMNotificationProcInfo, GetCurrentArchitecture())
  350. #define NewDMExtendedNotificationProc(userRoutine)        ¥
  351.         (DMExtendedNotificationUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, GetCurrentArchitecture())
  352. #define NewDMComponentListIteratorProc(userRoutine)        ¥
  353.         (DMComponentListIteratorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, GetCurrentArchitecture())
  354. #define NewDMDisplayModeListIteratorProc(userRoutine)        ¥
  355.         (DMDisplayModeListIteratorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, GetCurrentArchitecture())
  356. #else
  357. #define NewDMNotificationProc(userRoutine)        ¥
  358.         ((DMNotificationUPP) (userRoutine))
  359. #define NewDMExtendedNotificationProc(userRoutine)        ¥
  360.         ((DMExtendedNotificationUPP) (userRoutine))
  361. #define NewDMComponentListIteratorProc(userRoutine)        ¥
  362.         ((DMComponentListIteratorUPP) (userRoutine))
  363. #define NewDMDisplayModeListIteratorProc(userRoutine)        ¥
  364.         ((DMDisplayModeListIteratorUPP) (userRoutine))
  365. #endif
  366.  
  367. #if GENERATINGCFM
  368. #define CallDMNotificationProc(userRoutine, theEvent)        ¥
  369.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMNotificationProcInfo, (theEvent))
  370. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)        ¥
  371.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, (userData), (theMessage), (notifyData))
  372. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)        ¥
  373.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, (userData), (itemIndex), (componentInfo))
  374. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)        ¥
  375.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, (userData), (itemIndex), (displaymodeInfo))
  376. #else
  377. #define CallDMNotificationProc(userRoutine, theEvent)        ¥
  378.         (*(userRoutine))((theEvent))
  379. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)        ¥
  380.         (*(userRoutine))((userData), (theMessage), (notifyData))
  381. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)        ¥
  382.         (*(userRoutine))((userData), (itemIndex), (componentInfo))
  383. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)        ¥
  384.         (*(userRoutine))((userData), (itemIndex), (displaymodeInfo))
  385. #endif
  386.  
  387. extern pascal GDHandle DMGetFirstScreenDevice(Boolean activeOnly)
  388.  TWOWORDINLINE(0x7000, 0xABEB);
  389. extern pascal GDHandle DMGetNextScreenDevice(GDHandle theDevice, Boolean activeOnly)
  390.  TWOWORDINLINE(0x7001, 0xABEB);
  391. extern pascal void DMDrawDesktopRect(Rect *globalRect)
  392.  TWOWORDINLINE(0x7002, 0xABEB);
  393. extern pascal void DMDrawDesktopRegion(RgnHandle globalRgn)
  394.  TWOWORDINLINE(0x7003, 0xABEB);
  395. extern pascal OSErr DMBeginConfigureDisplays(Handle *displayState)
  396.  THREEWORDINLINE(0x303C, 0x0206, 0xABEB);
  397. extern pascal OSErr DMEndConfigureDisplays(Handle displayState)
  398.  THREEWORDINLINE(0x303C, 0x0207, 0xABEB);
  399. extern pascal OSErr DMAddDisplay(GDHandle newDevice, short driver, unsigned long mode, unsigned long reserved, unsigned long displayID, Component displayComponent, Handle displayState)
  400.  THREEWORDINLINE(0x303C, 0x0D08, 0xABEB);
  401. extern pascal OSErr DMMoveDisplay(GDHandle moveDevice, short x, short y, Handle displayState)
  402.  THREEWORDINLINE(0x303C, 0x0609, 0xABEB);
  403. extern pascal OSErr DMDisableDisplay(GDHandle disableDevice, Handle displayState)
  404.  THREEWORDINLINE(0x303C, 0x040A, 0xABEB);
  405. extern pascal OSErr DMEnableDisplay(GDHandle enableDevice, Handle displayState)
  406.  THREEWORDINLINE(0x303C, 0x040B, 0xABEB);
  407. extern pascal OSErr DMRemoveDisplay(GDHandle removeDevice, Handle displayState)
  408.  THREEWORDINLINE(0x303C, 0x040C, 0xABEB);
  409. extern pascal OSErr DMSetMainDisplay(GDHandle newMainDevice, Handle displayState)
  410.  THREEWORDINLINE(0x303C, 0x0410, 0xABEB);
  411. extern pascal OSErr DMSetDisplayMode(GDHandle theDevice, unsigned long mode, unsigned long *depthMode, unsigned long reserved, Handle displayState)
  412.  THREEWORDINLINE(0x303C, 0x0A11, 0xABEB);
  413. extern pascal OSErr DMCheckDisplayMode(GDHandle theDevice, unsigned long mode, unsigned long depthMode, unsigned long *switchFlags, unsigned long reserved, Boolean *modeOk)
  414.  THREEWORDINLINE(0x303C, 0x0C12, 0xABEB);
  415. extern pascal OSErr DMGetDeskRegion(RgnHandle *desktopRegion)
  416.  THREEWORDINLINE(0x303C, 0x0213, 0xABEB);
  417. extern pascal OSErr DMRegisterNotifyProc(DMNotificationUPP notificationProc, ProcessSerialNumberPtr whichPSN)
  418.  THREEWORDINLINE(0x303C, 0x0414, 0xABEB);
  419. extern pascal OSErr DMRemoveNotifyProc(DMNotificationUPP notificationProc, ProcessSerialNumberPtr whichPSN)
  420.  THREEWORDINLINE(0x303C, 0x0415, 0xABEB);
  421. extern pascal OSErr DMQDIsMirroringCapable(Boolean *qdIsMirroringCapable)
  422.  THREEWORDINLINE(0x303C, 0x0216, 0xABEB);
  423. extern pascal OSErr DMCanMirrorNow(Boolean *canMirrorNow)
  424.  THREEWORDINLINE(0x303C, 0x0217, 0xABEB);
  425. extern pascal OSErr DMIsMirroringOn(Boolean *isMirroringOn)
  426.  THREEWORDINLINE(0x303C, 0x0218, 0xABEB);
  427. extern pascal OSErr DMMirrorDevices(GDHandle gD1, GDHandle gD2, Handle displayState)
  428.  THREEWORDINLINE(0x303C, 0x0619, 0xABEB);
  429. extern pascal OSErr DMUnmirrorDevice(GDHandle gDevice, Handle displayState)
  430.  THREEWORDINLINE(0x303C, 0x041A, 0xABEB);
  431. extern pascal OSErr DMGetNextMirroredDevice(GDHandle gDevice, GDHandle *mirroredDevice)
  432.  THREEWORDINLINE(0x303C, 0x041B, 0xABEB);
  433. extern pascal OSErr DMBlockMirroring(void)
  434.  TWOWORDINLINE(0x701C, 0xABEB);
  435. extern pascal OSErr DMUnblockMirroring(void)
  436.  TWOWORDINLINE(0x701D, 0xABEB);
  437. extern pascal OSErr DMGetDisplayMgrA5World(Ptr *dmA5)
  438.  THREEWORDINLINE(0x303C, 0x021E, 0xABEB);
  439. extern pascal OSErr DMGetDisplayIDByGDevice(GDHandle displayDevice, DisplayIDType *displayID, Boolean failToMain)
  440.  THREEWORDINLINE(0x303C, 0x051F, 0xABEB);
  441. extern pascal OSErr DMGetGDeviceByDisplayID(DisplayIDType displayID, GDHandle *displayDevice, Boolean failToMain)
  442.  THREEWORDINLINE(0x303C, 0x0520, 0xABEB);
  443. extern pascal OSErr DMSetDisplayComponent(GDHandle theDevice, Component displayComponent)
  444.  THREEWORDINLINE(0x303C, 0x0421, 0xABEB);
  445. extern pascal OSErr DMGetDisplayComponent(GDHandle theDevice, Component *displayComponent)
  446.  THREEWORDINLINE(0x303C, 0x0422, 0xABEB);
  447. extern pascal OSErr DMNewDisplay(GDHandle *newDevice, short driverRefNum, unsigned long mode, unsigned long reserved, DisplayIDType displayID, Component displayComponent, Handle displayState)
  448.  THREEWORDINLINE(0x303C, 0x0D23, 0xABEB);
  449. extern pascal OSErr DMDisposeDisplay(GDHandle disposeDevice, Handle displayState)
  450.  THREEWORDINLINE(0x303C, 0x0424, 0xABEB);
  451. extern pascal OSErr DMResolveDisplayComponents(void)
  452.  TWOWORDINLINE(0x7025, 0xABEB);
  453. extern pascal OSErr DMRegisterExtendedNotifyProc(DMExtendedNotificationUPP notifyProc, void *notifyUserData, unsigned short nofifyOnFlags, ProcessSerialNumberPtr whichPSN)
  454.  THREEWORDINLINE(0x303C, 0x07EF, 0xABEB);
  455. extern pascal OSErr DMRemoveExtendedNotifyProc(DMExtendedNotificationUPP notifyProc, void *notifyUserData, ProcessSerialNumberPtr whichPSN, unsigned short removeFlags)
  456.  THREEWORDINLINE(0x303C, 0x0726, 0xABEB);
  457. extern pascal OSErr DMNewAVPanelList(DisplayIDType displayID, ResType panelType, DMFidelityType minimumFidelity, unsigned long panelListFlags, unsigned long reserved, DMListIndexType *thePanelCount, DMListType *thePanelList)
  458.  THREEWORDINLINE(0x303C, 0x0C27, 0xABEB);
  459. extern pascal OSErr DMNewAVEngineList(DisplayIDType displayID, ResType engineType, DMFidelityType minimumFidelity, unsigned long engineListFlags, unsigned long reserved, DMListIndexType *engineCount, DMListType *engineList)
  460.  THREEWORDINLINE(0x303C, 0x0C28, 0xABEB);
  461. extern pascal OSErr DMNewAVDeviceList(ResType deviceType, unsigned long deviceListFlags, unsigned long reserved, DMListIndexType *deviceCount, DMListType *deviceList)
  462.  THREEWORDINLINE(0x303C, 0x0A29, 0xABEB);
  463. extern pascal OSErr DMNewAVPortListByPortType(ResType subType, unsigned long portListFlags, unsigned long reserved, DMListIndexType *devicePortCount, DMListType *theDevicePortList)
  464.  THREEWORDINLINE(0x303C, 0x0A2A, 0xABEB);
  465. extern pascal OSErr DMGetIndexedComponentFromList(DMListType panelList, DMListIndexType itemIndex, unsigned long reserved, DMComponentListIteratorUPP listIterator, void *userData)
  466.  THREEWORDINLINE(0x303C, 0x0A2B, 0xABEB);
  467. extern pascal OSErr DMDisposeList(DMListType panelList)
  468.  THREEWORDINLINE(0x303C, 0x022C, 0xABEB);
  469. extern pascal OSErr DMGetNameByAVID(AVIDType theID, unsigned long nameFlags, Str255 *name)
  470.  THREEWORDINLINE(0x303C, 0x062D, 0xABEB);
  471. extern pascal OSErr DMNewAVIDByPortComponent(Component thePortComponent, ResType portKind, unsigned long reserved, AVIDType *newID)
  472.  THREEWORDINLINE(0x303C, 0x082E, 0xABEB);
  473. extern pascal OSErr DMGetPortComponentByAVID(DisplayIDType thePortID, Component *thePortComponent, ComponentDescription *theDesciption, ResType *thePortKind)
  474.  THREEWORDINLINE(0x303C, 0x082F, 0xABEB);
  475. extern pascal OSErr DMSendDependentNotification(ResType notifyType, ResType notifyClass, AVIDType displayID, ComponentInstance notifyComponent)
  476.  THREEWORDINLINE(0x303C, 0x0A30, 0xABEB);
  477. extern pascal OSErr DMDisposeAVComponent(Component theAVComponent)
  478.  THREEWORDINLINE(0x303C, 0x0231, 0xABEB);
  479. extern pascal OSErr DMSaveScreenPrefs(unsigned long reserved1, unsigned long saveFlags, unsigned long reserved2)
  480.  THREEWORDINLINE(0x303C, 0x0632, 0xABEB);
  481. extern pascal OSErr DMNewAVIDByDeviceComponent(Component theDeviceComponent, ResType portKind, unsigned long reserved, DisplayIDType *newID)
  482.  THREEWORDINLINE(0x303C, 0x0833, 0xABEB);
  483. extern pascal OSErr DMNewAVPortListByDeviceAVID(AVIDType theID, DMFidelityType minimumFidelity, unsigned long portListFlags, unsigned long reserved, DMListIndexType *devicePortCount, DMListType *theDevicePortList)
  484.  THREEWORDINLINE(0x303C, 0x0C34, 0xABEB);
  485. extern pascal OSErr DMGetDeviceComponentByAVID(AVIDType theDeviceID, Component *theDeviceComponent, ComponentDescription *theDesciption, ResType *theDeviceKind)
  486.  THREEWORDINLINE(0x303C, 0x0835, 0xABEB);
  487. extern pascal OSErr DMNewDisplayModeList(DisplayIDType displayID, unsigned long modeListFlags, unsigned long reserved, DMListIndexType *thePanelCount, DMListType *thePanelList)
  488.  THREEWORDINLINE(0x303C, 0x0A36, 0xABEB);
  489. extern pascal OSErr DMGetIndexedDisplayModeFromList(DMListType panelList, DMListIndexType itemIndex, unsigned long reserved, DMDisplayModeListIteratorUPP listIterator, void *userData)
  490.  THREEWORDINLINE(0x303C, 0x0A37, 0xABEB);
  491. extern pascal OSErr DMGetGraphicInfoByAVID(AVIDType theID, PicHandle *theAVPcit, Handle *theAVIconSuite, AVLocationRec *theAVLocation)
  492.  THREEWORDINLINE(0x303C, 0x0838, 0xABEB);
  493. extern pascal OSErr DMGetAVPowerState(AVIDType theID, AVPowerStatePtr getPowerState, unsigned long reserved1)
  494.  THREEWORDINLINE(0x303C, 0x0839, 0xABEB);
  495. extern pascal OSErr DMSetAVPowerState(AVIDType theID, AVPowerStatePtr setPowerState, unsigned long powerFlags, Handle displayState)
  496.  THREEWORDINLINE(0x303C, 0x083A, 0xABEB);
  497. extern pascal OSErr DMGetDeviceAVIDByPortAVID(AVIDType portAVID, AVIDType *deviceAVID)
  498.  THREEWORDINLINE(0x303C, 0x043B, 0xABEB);
  499. extern pascal OSErr DMGetEnableByAVID(AVIDType theAVID, Boolean *isAVIDEnabledNow, Boolean *canChangeEnableNow)
  500.  THREEWORDINLINE(0x303C, 0x063C, 0xABEB);
  501. extern pascal OSErr DMSetEnableByAVID(AVIDType theAVID, Boolean doEnable, Handle displayState)
  502.  THREEWORDINLINE(0x303C, 0x053D, 0xABEB);
  503. extern pascal OSErr DMGetDisplayMode(GDHandle theDevice, VDSwitchInfoPtr switchInfo)
  504.  THREEWORDINLINE(0x303C, 0x043E, 0xABEB);
  505.  
  506. #if PRAGMA_IMPORT_SUPPORTED
  507. #pragma import off
  508. #endif
  509.  
  510. #if PRAGMA_ALIGN_SUPPORTED
  511. #pragma options align=reset
  512. #endif
  513.  
  514. #ifdef __cplusplus
  515. }
  516. #endif
  517.  
  518. #endif /* __DISPLAYS__ */
  519.